package com.example.demo.leetcode.top;

/**
 * 给你一个字符串 s，找到 s 中最长的回文子串。
 *
 *  
 *
 * 示例 1：
 *
 * 输入：s = "babad"
 * 输出："bab"
 * 解释："aba" 同样是符合题意的答案。
 * 示例 2：
 *
 * 输入：s = "cbbd"
 * 输出："bb"
 * 示例 3：
 *
 * 输入：s = "a"
 * 输出："a"
 * 示例 4：
 *
 * 输入：s = "ac"
 * 输出："a"
 *  
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/longest-palindromic-substring
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 **/
public class String_最长回文子串 {
    
    public String longestPalindrome(String s) {

        String maxStr="";
        for(int i=0;i<s.length();i++){
            //奇数个
            String s1 = maxLen(s, i, i);
            //偶数个
            String s2 = maxLen(s,i,i+1);
            maxStr = s1.length()>maxStr.length()?s1:maxStr;
            maxStr = s2.length()>maxStr.length()?s2:maxStr;
        }
        return maxStr;
    }

    public String maxLen(String s,int left,int right){
        String substring="";
        while(left>=0 && right<s.length() && s.charAt(left) == s.charAt(right)){
            substring = s.substring(left, right+1);
            left--;
            right++;
        }
        return substring;
    }

}
